/*
    2D FDTD simulator
    Copyright (C) 2019 Emilia Blåsten

    This program is free software: you can redistribute it and/or
    modify it under the terms of the GNU Affero General Public License
    as published by the Free Software Foundation, either version 3 of
    the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public
    License along with this program.  If not, see
    <http://www.gnu.org/licenses/>.
*/
/* tfsftmz.h: Header file that defines the TFSF structure and contains
 * the TFSF function prototypes. The structure contains indices for the
 * coordinates of the TF region. It also contains a pointer to a 1D
 * Grid-structure which will be used to propagate the incident wave. */

#ifndef _TFSF_H
#define _TFSF_H

#include "gridtmz.h"
#include "grid1dez.h"

struct Tfsf {
  int firstX, firstY;
  int lastX, lastY;

  Grid1D *g1;
};

typedef struct Tfsf Tfsf;


void tfsfInit(Tfsf *tf, Grid *g);
Tfsf *tfsfCreate(int sizeX);
void tfsfDestroy(Tfsf *tf);
void tfsfUpdate(Tfsf *tf, Grid *g);


#endif
